<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
</head>

<body>
    <script>
        // 经典面试题图解：此题的关键点在于每次循环都会产生一个块级作用域，每个块级作用域中的变量都是不同的，
        // 函数执行时输出的是自己上一级（循环产生的块级作用域）作用域下的i值.

        // let arr = [];

        // for (let i = 0; i < 2; i++) {
        //     arr[i] = function() {
        //         console.log(i);
        //     };
        // }

        // // console.dir(arr[0]);
        // // console.dir(arr[1]);
        // arr[0]();
        // arr[1]();
    </script>

    <script>
        // 经典面试题图解：此题的关键点在于变量i是全局的，函数执行时输出的都是全局作用域下的i值。

        // var arr = [
        //     function() {
        //         console.log(i);
        //     },
        //     (arr[i] = function() {
        //         console.log(i);
        //     }),
        // ];

        var arr = [];
        for (var i = 0; i < 2; i++) {
            arr[i] = function() {
                console.log(i); // i
            };
        }

        // console.log(i); // 2

        arr[0]();
        arr[1]();
    </script>
</body>

</html>